package board.model;

import java.sql.SQLException;
import java.util.List;

import com.ibatis.sqlmap.client.SqlMapClient;

public class BoardDao {
	private SqlMapClient sqlMapClient;
	public BoardDao(SqlMapClient sqlMapClient){
		this.sqlMapClient = sqlMapClient;
	}
	/*public int boardWrite(BoardVO bvo) throws SQLException{
		return (Integer)sqlMapClient.insert("board.boardWrite",bvo);
	}*/
	// 게시물 날짜 가져오는 메서드 0422 임한희
	public String boardSelectByNoForDate(int no) throws SQLException{
		return (String)sqlMapClient.queryForObject("board.boardSelectByNoForDate",no);
	}
	// 게시물 목록 가져오는 메서드 0422 임한희
	public List<BoardVO> boardList(String pageNo) throws SQLException{
		return sqlMapClient.queryForList("board.boardList", pageNo);
	}
	// 게시물 카운트 업데이트 메서드 0422 임한희
	public void boardUpdateCount(String no) throws SQLException{
		sqlMapClient.update("board.boardUpdateCount", no);
	}
	// 게시물 삭제 메서드 0422 임한희
	public void boardDeleteContent(String no) throws SQLException{
		sqlMapClient.delete("board.boardDeleteContent", no);
	}
	// 게시물 업데이트 메서드 0422 임한희
	public void boardUpdate(BoardVO bvo) throws SQLException{
		sqlMapClient.update("board.boardUpdate", bvo);
	}
	// 게시물 총 컨텐츠 수 구하는 메서드 0422 임한희
	public int boardTotalContents() throws SQLException{
		return (Integer)sqlMapClient.queryForObject("board.boardTotalContents");
	}
	// 해당 아이디로 작성된 게시글 수 구하는 메서드 0514 임한희
	public int boardGetTotalContentsById(String writer) throws SQLException{
		return (int) sqlMapClient.queryForObject("board.boardGetTotalContentsById", writer);
	}
	// 사진을 클릭했을떄 사진에 해당하는 정보를 보는 메서드 0425 박정형
	public BoardVO boardContentView(String no) throws SQLException{
		return (BoardVO)sqlMapClient.queryForObject("board.boardContentView", no);
	 }
	// 리플 작성하는 메서드 0430 임한희
	public void boardReplyWriter(BoardReplyVO brvo) throws SQLException{
		sqlMapClient.insert("board.boardReplyWriter", brvo);
	}
	// 리플 갯수 가져오는 메서드 0430 임한희
	public int boardReplyCount(int replyrefno) throws SQLException{
		//System.out.println("replyrefno : "+replyrefno);
		int result = 0;
		int count = (Integer) sqlMapClient.queryForObject("board.boardReplyCount", replyrefno);
		if(count!=0){
			result = count;
		}
		return result;
	}
	// 리플스텝넘버 제일 큰 수 구하는 메서드 0502 임한희
	public int boardReplyMaxCount(int replyrefno) throws SQLException{
		int result = 0;
		if((Integer) sqlMapClient.queryForObject("board.boardReplyMaxCount", replyrefno)==null){
			System.out.println("첫번째 리플!!");
		}else{
			result = (Integer) sqlMapClient.queryForObject("board.boardReplyMaxCount", replyrefno);
		}
		return result;
	}
	// 리플들 읽어오는 메서드 0430 임한희
	public List<BoardReplyVO> boardReplyView(int replyrefno) throws SQLException{
		return sqlMapClient.queryForList("board.boardReplyView", replyrefno);
	}
	// 게시물에 달린 리플들 전체 삭제하는 메서드 0501 임한희
	public void boardReplyAllDelete(int replyrefno) throws SQLException{
		sqlMapClient.delete("board.boardReplyAllDelete", replyrefno);
	}
	// 리플 삭제하는 메서드 0501 임한희
	public void boardReplyDelete(int replyno) throws SQLException{
		sqlMapClient.delete("board.boardReplyDelete", replyno);
	}
	// 게시물 수정폼으로 데이터 가져오기 위한 메서드 0507 임한희
	public BoardVO boardUpdateView(String no) throws SQLException{
		return (BoardVO) sqlMapClient.queryForObject("board.boardContentView", no);
	}
	/*public void updateUploadFileInfo(String no) throws SQLException {
		// TODO Auto-generated method stub
		sqlMapClient.update("board.updateUploadFileInfo", no);
	}*/
	// 어플로 게시글 작성
	public void boardWrite(BoardVO bvo) throws SQLException{
		sqlMapClient.insert("board.boardWrite",bvo);
	}
	// 리스트 화면 대신에 구글맵으로 표시하고 다중마커 표시하기 위한 메서드 0509 임한희
	public List<BoardVO> boardMapViewMarkers() throws SQLException{
		return sqlMapClient.queryForList("board.boardMapViewMarkers");
	}
	// 아이디로 리플전체 삭제하는 메서드 0511 임한희
	public void boardReplyAllDeleteById(String replywriter) throws SQLException{
		sqlMapClient.delete("board.boardReplyAllDeleteById", replywriter);
	}
	// 아이디로 게시글 전체 삭제하는 메서드 0511 임한희
	public void boardDeleteContentsById(String writer) throws SQLException{
		sqlMapClient.delete("board.boardDeleteContentsById", writer);
	}
	//  구글맵 주소에 해당하는 게시글 보는 메서드 0511 임한희
	public BoardVO boardGetContentByGpsinfo(BoardVO bvo) throws SQLException{
		return (BoardVO) sqlMapClient.queryForObject("board.boardGetContentByGpsinfo", bvo);
	}
	// 구글맵 주소로 해당 게시글 번호 가져오는 메서드 0511 임한희
	public String boardGetContentNoByGpsinfo(BoardVO bvo) throws SQLException{
		return (String) sqlMapClient.queryForObject("board.boardGetContentNoByGpsinfo", bvo);
	}
	// 매칭시 상대방 아이디로 게시글 리스트 가져오는 메서드 0514 임한희
	public List<BoardVO> boardGetListById(String writer) throws SQLException{
		return sqlMapClient.queryForList("board.boardGetListById", writer);
	}
}